Automatic contact distribution systems are known. Such systems are typically used, for example, as a means of distributing customer contacts such as telephone calls among a group of agents. Automatic contact distributors, also know as automatic call distributors, may be, but are not limited to, hardware and/or software systems with many possible configurations including distributed systems, integrated systems, systems based on one or more personal computers or servers, and the like.
Often an organization disseminates a single telephone number to its customers and to the public in general as a means of contacting the organization. The term “calls” refers not only to conventional telephone calls, but also to any customer contacts including but not limited to facsimile, e-mail, Internet communications such as web chat and VoIP (Voice Over Internet Protocol). As calls are directed to the organization from the public switch telephone network or other communication system, the automatic call distribution system directs the calls to its agents based upon some type of criteria. For example, where all agents are considered equal, the automatic call distributor may distribute the calls based upon which agent has been idle the longest. The agents that are operatively connected to the automatic call distributor may be live agents, and/or virtual agents. Typically, virtual agents are, for example, software routines and algorithms that are operatively connected and/or part of the automatic call distributor.
Automatic call distributors are often utilized in communications handling centers, such as telephone call centers, that forward incoming communications for processing by one of several associated call-handling agents. Such communications centers may be used to forward voice-over-internet protocol communications; electronic mail messages; facsimiles or the like, to associated handling agents.
Call centers, for example, are often used to dispatch emergency services, as telemarketing sales centers, as customer service centers, etc. to automatically distribute received calls. Each incoming call may have a number of handling requirements, depending on, for example, the nature of the call, the originating call area, and the language of the call. Agents, on the other hand, each have abilities to process calls having certain handling requirements. Typically, agents are able to process one or more call types. For example, agents may be trained to process certain call subject matters and certain call languages.
In known call centers, computerized automatic call distributors place incoming telephone calls, of a particular type, requiring defined skills, in queues of like calls. Appropriate agents have skills necessary to process calls in the queues, and are assigned to such queues. Agents are often assigned to multiple queues, reflective of their particular handling skills. Typically, this is done to increase the handling capacity of the center by making improved use of available communications handling resources.
Quite often, agents may handle calls related to one or more subject areas, and possess varied attributes that are relevant to all subject areas they are capable of handling. For example, a telephone call center agent may speak multiple languages, and may therefore be able to process telephone calls relating to a particular subject matter in all these languages. One simple approach used to deal with multiple agent attributes is to create and administer individual queues, each of which takes into account the subject matter and the attributes of the agent. This, however, is administratively very cumbersome.
Other known call centers use agent-skill indicators, associated with agents in order to connect calls. In such centers, a call is connected to an agent having an agent-skill indicator matching that of the call, within a group of agents. Agents, however, are typically only assignable to only one, and typically only a single agent-skill indicator is used to connect the call. Disadvantageously, such call centers do not use agent attributes across different groups. This may lead to an inefficient utilization of call center resources. Moreover, these communications handling centers do not allow for easy administration and re-assignment of agents to queues, while maintaining agent skill-sets.
One concern in designing an automatic call distributor system is ensuring that calls are efficiently routed to an agent, so as to minimize the amount of time that any particular call waits to be handled. One basic technique of minimizing on-hold time is to employ a firstin/first-out call handling technique. The first-in/first-out technique requires that calls be routed to the next available agent in the order in which the calls are received. However, in some automatic call distributor systems the agents are specialized in handling particular types of calls, so the first-in/first-out technique is not appropriate. For example in a product support department of a software facility, agents might be grouped according to specialized expertise, so that a first group is knowledgeable in word processing, a second group is knowledgeable in a database program, and a third group is knowledgeable in a spreadsheet program. Utilizing a first-in/first-out technique in such a situation is inappropriate, because a caller with a question regarding the word processing program may be routed to an agent having specialized knowledge regarding the database program or the spreadsheet program, rather than being routed to an agent with specialized knowledge in the word processing program.
The focus in the management of calls has been upon maximizing availability to customers, so as to achieve an acceptable profit margin in a competitive environment of customer service. Call management approaches that increase revenue may lead to savings for customers.
Most present-day call-distribution algorithms focus on being “fair” to callers and to agents. This fairness is reflected by the standard first-in, first-out call to most-idle-agent assignment algorithm. Skills-based routing improves upon this basic algorithm in that it allows each agent to be slotted into a number of categories based on the agent's skill types and levels.
There are times when it is not convenient for a user to speak with an agent. For example, a user may be in a meeting where he or she cannot easily place a voice phone call. Users are then forced to use a text device to communicate with the agent if a voice session was not desired. In this case, the user can establish a wireless connection using, for example, a PDA or equivalent device, and a connection would then be made into a web-based connection or web session. However, for communication with an agent, the agent must read the text, and reply by typing a response. Because a text session is created, it necessarily has the associated data delays and response time delays inherent in text sessions.
Thus there is a need in the prior art for a “pseudo-real-time” connection to be established between the user or caller and the agent even though a true real-time connection cannot be established.